NumPy에서는 정밀도 관리 메모리 효율성과 수치적 정확성 사이의 균형을 위해 비트 깊이를 의도적으로 선택하는 것입니다. 일반적인 파이썬 정수와 달리, 정밀도가 무제한인 반면에, NumPy는 고정 크기의 C 타입(예:) int32_t, uint64_t)를 사용합니다.
1. 타입 계층 구조
NumPy의 dtype은 메모리 사용량을 정의합니다. 비록 np.int_() 은 플랫폼에 따라 달라지는 크기를 제공하지만, 신뢰할 수 있는 시스템은 고정 크기 별칭 (표: 페이지 34)을 활용하여 하드웨어 간 일관성을 보장합니다.
- 정수:
int8_t,int16_t,int32_t,int64_t. - 부호 없는:
uint8_t부터uint64_t. - 포인터:
intptr_t,uintptr_t.
2. 진단 도구
산술 연산을 수행하기 전에 np.iinfo() 그리고 np.finfo() 경계를 확인하세요. 예를 들어, 1 + np.finfo(np.longdouble).eps 는 덧셈이 더 이상 값을 변경하지 않는 임계값인 기계 에프스론을 식별합니다.
3. 오버플로의 메커니즘
NumPy는 오버플로우 발생 시 오류를 발생시키지 않습니다. 즉, 조용히 실패합니다. 예를 들어, np.power(100, 8, dtype=np.int32) 는 자르기 결과를 낳지만, float64 는 inf로 전환됩니다. 연산 전에 카테고리를 검증하려면 np.issubdtype(d, np.floating) 사용하세요.
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>